// Copyright 2008 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Simple examples.
// Author: Kai Huang

{namespace soy.examples.simple}


/**
 * Says hello to the world.
 */
{template .helloWorld}
  {msg desc="Says hello to the world."}
    Hello world!
  {/msg}
{/template}


/**
 * Says hello to a person (or to the world if no person is given).
 * @param? name The name of the person to say hello to.
 */
{template .helloName}
  {if hasData() and $name}
    {msg desc="Says hello to a person."}
      Hello {$name}!
    {/msg}
  {else}
    {call .helloWorld /}
  {/if}
{/template}


/**
 * Say hello to a list of people.
 * @param names List of names of the people to say hello to.
 */
{template .helloNames}
  {foreach $name in $names}
    {call .helloName}
      {param name: $name /}
    {/call}
    {if not isLast($name)}
      <br>  // break after every line except the last
    {/if}
  {ifempty}
    // If names list is empty, say "Hello world".
    {call .helloWorld /}
  {/foreach}
{/template}
